package cn.tedu.blockingqueue;

import java.util.concurrent.ArrayBlockingQueue;
import java.util.concurrent.TimeUnit;

public class BlockingQueueDemo {
    public static void main(String[] args) {
        // 需要指定容量
        ArrayBlockingQueue<String> queue = new ArrayBlockingQueue<>(5);
        // 添加元素
        queue.add("a");
        queue.add("a");
        queue.add("a");
        queue.add("a");
        queue.add("a");
        // 队列已经满了
        // 抛出 IllegalStateException
//        queue.add("b");
        // 返回false
//        boolean flag = queue.offer("c");
//        System.out.println(flag);

        try {
            // 产生阻塞
            // queue.put("d");

            // 定时阻塞
            boolean flag = queue.offer("e", 5, TimeUnit.SECONDS);
            System.out.println(flag);
        } catch (InterruptedException interruptedException) {
            interruptedException.printStackTrace();
        }
        System.out.println(queue);
    }
}
